package org.base23.video.service;

import org.base23.video.domain.dto.DetailedPostureAnalysis;
import org.base23.video.domain.dto.SmartVideoPlayerDTO;
import org.base23.video.domain.dto.VideoAnalysisResult;

/**
 * 智能视频播放器服务接口
 */
public interface SmartVideoPlayerService {

    /**
     * 基于分析结果生成智能播放器信息
     * 
     * @param userId 用户ID
     * @param resultId 分析结果ID
     * @param videoUrl 视频URL
     * @param analysisData 分析数据
     * @param detailedAnalysis 详细分析结果
     * @return 播放器信息ID
     */
    Long generatePlayerInfo(Long userId, String resultId, String videoUrl, 
                           VideoAnalysisResult.VideoAnalysisData analysisData,
                           DetailedPostureAnalysis detailedAnalysis);

    /**
     * 获取智能播放器信息
     * 
     * @param userId 用户ID
     * @param resultId 分析结果ID
     * @return 播放器信息DTO
     */
    SmartVideoPlayerDTO getPlayerInfo(Long userId, String resultId);

    /**
     * 获取用户的所有播放器信息
     * 
     * @param userId 用户ID
     * @return 播放器信息列表
     */
    java.util.List<SmartVideoPlayerDTO> getUserPlayerInfos(Long userId);

    /**
     * 更新播放器状态
     * 
     * @param userId 用户ID
     * @param resultId 分析结果ID
     * @param status 状态
     * @param errorMessage 错误信息
     */
    void updatePlayerStatus(Long userId, String resultId, String status, String errorMessage);

    /**
     * 删除播放器信息
     * 
     * @param userId 用户ID
     * @param resultId 分析结果ID
     */
    void deletePlayerInfo(Long userId, String resultId);
} 